home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 26 / AACD 26.iso / AACD / Programming / AllPlaton / Unsorted / DateStamp.AMOS / DateStamp.amosSourceCode
Encoding:
AMOS Source Code  |  1995-04-22  |  2.3 KB  |  96 lines

  1. DATETYPE=2 : LING=1 : ED$="0"
  2. Gosub INITDATECALC
  3. Gosub ACTUALDATE
  4. Gosub COMDATESTRING
  5. Gosub COMDATETIME
  6. Print Hex$(DATE,8),Hex$(TIME,8)
  7. Gosub COMDATESTRING
  8. End 
  9. INITDATECALC:
  10.   Dim MONTH(11),MONTH$(11,1),DAYNAM$(6,1)
  11.   Restore MONTHLENGTHS
  12.   For A=0 To 11
  13.     Read MONTH(A)
  14.   Next 
  15.   Restore MONTHNAMES
  16.   For B=0 To 1
  17.     For A=0 To 11
  18.       Read MONTH$(A,B)
  19.     Next 
  20.   Next 
  21.   Restore DAYNAMES
  22.   For B=0 To 1
  23.     For A=0 To 6
  24.       Read DAYNAM$(A,B)
  25.     Next 
  26.   Next 
  27. Return 
  28. ACTUALDATE:
  29.   T$=Space$(12)
  30.   Dreg(1)=Varptr(T$)
  31.   A=Doscall(-192)
  32.   L1=Leek(Varptr(T$))
  33.   L2=Leek(Varptr(T$)+4)
  34.   L3=Leek(Varptr(T$)+8)
  35.   X=L1 : L=365
  36.   YEAR=1978 : MON=0
  37.   While X=>L
  38.     Inc YEAR
  39.     Add X,-L
  40.     If(YEAR mod 4)=0 Then L=366 Else L=365
  41.   Wend 
  42.   L=31
  43.   While X=>L
  44.     Inc MON
  45.     Add X,-L
  46.     L=MONTH(MON)
  47.     If L=28 and(YEAR mod 4)=0 Then Inc L
  48.   Wend 
  49.   DAY=X
  50.   WEEKDAY=(L1+6) mod 7
  51.   E1=L2/60 : E2=L2 mod 60 : E3=L3/50
  52.   DATE=(YEAR-1978)*4096+MON*256+WEEKDAY*32+DAY
  53.   TIME=E1*3600+E2*60+E3
  54. Return 
  55. COMDATETIME:
  56.   YEAR=(DATE/4096)+1978
  57.   MON=(DATE/256) mod 16
  58.   WEEKDAY=(DATE/32) mod 8
  59.   DAY=DATE mod 32
  60.   E1=TIME/3600
  61.   E2=(TIME/60) mod 60
  62.   E3=TIME mod 60
  63. Return 
  64. COMDATESTRING:
  65.   If DATETYPE=0
  66.     D1$=""
  67.     If MON<9 : D3$=ED$+Mid$(Str$(MON+1),2) : Else D3$=Mid$(Str$(MON+1),2) : End If 
  68.   End If 
  69.   If DATETYPE=1
  70.     D1$=Left$(DAYNAM$(WEEKDAY,LING),3-LING)+" "
  71.     D3$=Left$(MONTH$(MON,LING),3)
  72.   End If 
  73.   If DATETYPE=2
  74.     D1$=DAYNAM$(WEEKDAY,LING)+" "
  75.     D3$=MONTH$(MON,LING)
  76.   End If 
  77.   D2$=Mid$(Str$(DAY+1),2)
  78.   If DAY<9 and DATETYPE<2 Then D2$=ED$+D2$
  79.   If DATETYPE<2 Then D4$=Mid$(Str$(YEAR),4) Else D4$=Mid$(Str$(YEAR),2)
  80.   E1$=Mid$(Str$(E1),2) : If E1<10 Then E1$=ED$+E1$
  81.   E2$=Mid$(Str$(E2),2) : If E2<10 Then E2$=ED$+E2$
  82.   E3$=Mid$(Str$(E3),2) : If E3<10 Then E3$=ED$+E3$
  83.   If DATETYPE<2
  84.     Print D1$;D2$;"-";D3$;"-";D4$;" ";E1$;":";E2$;":";E3$
  85.   Else 
  86.     Print D1$;D2$;". ";D3$;" ";D4$;" ";E1$;":";E2$;":";E3$
  87.   End If 
  88. Return 
  89. MONTHLENGTHS:
  90.   Data 30,28,31,30,31,30,31,31,30,31,30,31
  91. MONTHNAMES:
  92.   Data "January","February","March","April","May","June","July","August","September","November","December"
  93.   Data "Januar","Februar","M�rz","April","Mai","Juni","Juli","August","September","November","Dezember"
  94. DAYNAMES:
  95.   Data "Monday","Tuesday","Wednesday","Thusday","Friday","Saturday","Sunday"
  96.   Data "Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"